package cn.iocoder.an.module.business.dal.dataobject.auditplandetail;

import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.*;

import java.time.LocalDate;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.an.framework.mybatis.core.dataobject.BaseDO;

/**
 * 审核填报 DO
 *
 * @author 超级管理员
 */
@TableName(value = "business_audit_plan_detail",autoResultMap = true)
@KeySequence("business_audit_plan_detail_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AuditPlanDetailDO extends BaseDO {

    /**
     * id
     */
    @TableId
    private Long id;
    /**
     * 分类
     */
    private Long auditTypeId;
    /**
     * 分类名称
     */
    private String auditTypeName;
    /**
     * 审核项
     */
    private Long configId;
    /**
     * 审核项
     */
    private String configName;
    /**
     * 审核结果
     *
     * 枚举 {@link TODO audit_result 对应的类}
     */
    private String auditResult;
    /**
     * 问题简述
     */
    private String remark;
    /**
     * 责任人
     */
    private Long dutyUserId;
    /**
     * 计划完成时间
     */
    private LocalDate planDate;
    /**
     * 附件
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<String> files;

    //对应的上级 计划区域ID
    private Long planAreaId;


    //问题图片
    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<String> problemImg;

    //扣分
    private double deductPoints;

    //整改部门
    private Long repairDeptId;

    //整改部门
    private String repairDeptName;

    //整改措施
    private String takeWay;

    //整改图片
    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<String> repairImg;

    //完成状态
    private Integer completeStatus;

    //问题备注
    private String problemRemark;

    //审核人
    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<Long> auditUserId;

    //审核人
    private String auditUserName;

    //审核状态
    private Integer auditStatus;

    //审核备注
    private String auditRemark;

    //审核时间
    private LocalDateTime auditTime;


}